This specification relates to digital image processing.
Some existing image processing techniques use patch-based techniques for manipulating content. The processing can involve analyzing or synthesizing patches (e.g., pixel groups) of image content. For example, patch-based approaches are used in denoising image and video content; enhancing image resolution such as performing super-resolution; compressing image content; changing image aspect ratio such as by retargeting; editing image content; and performing texture synthesis. For example, a bidirectional similarity can be evaluated based on a patch distance metric. A bidirectional similarity computation can involve calculating nearest neighbor patches, which can be computationally demanding. Some digital image editing tools use nearest neighbor searches for modifying images.
Patch-based methods can have benefits for synthesis operations. For example, structure, texture, repetitive patterns and redundancies can be treated well. As with other local methods, patch-based processing can lead to global inconsistencies or deformations.